Skip to content
标签
OSS
字数
355 字
阅读时间
2 分钟

依赖

xml
<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>[7.2.0, 7.2.99]</version>
</dependency>

文件上传

java
@Test
public void testUploadImage() {
    Configuration cfg = new Configuration(Zone.zone0());
    UploadManager uploadManager = new UploadManager(cfg);
    String accessKey = "COuoDRVa7JLsuurzIvQSI_pEDceHDw3yGfJEmvwv";
    String secretKey = "3RWpTjB5Jxg3QosUFr4mxbHXJ5JR2m6AHQqYsSlr";
    String bucket = "test-bucket";
    String localFilePath = "C:\\Users\\ThinkPad\\Desktop\\ihrm\\day9\\资源\\照片\\001.png";
    //默认不指定key的情况下,以文件内容的hash值作为文件名
    String key = "test";
    Auth auth = Auth.create(accessKey, secretKey);
    String upToken = auth.uploadToken(bucket);
    try {
    	Response response = uploadManager.put(localFilePath, key, upToken);
    	//解析上传成功的结果
    	DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),
    	DefaultPutRet.class);
    	System.out.println(response.bodyString());
    } catch (QiniuException ex) {
    	Response r = ex.response;
    	System.err.println(r.toString());
        try {
            System.err.println(r.bodyString());
        } catch (QiniuException ex2) {
        //ignore
        }
    }
}

断点续传

java
@Test
public void testUploadImage1() {
    Configuration cfg = new Configuration(Zone.zone0());
    String accessKey = "COuoDRVa7JLsuurzIvQSI_pEDceHDw3yGfJEmvwv";
    String secretKey = "3RWpTjB5Jxg3QosUFr4mxbHXJ5JR2m6AHQqYsSlr";
    String bucket = "test-bucket";
    String key = "test";
    Auth auth = Auth.create(accessKey, secretKey);
    String upToken = auth.uploadToken(bucket);
    String localFilePath = "C:\\Users\\ThinkPad\\Desktop\\ihrm\\day9\\资源\\test.xlsx";
    String localTempDir = Paths.get(System.getProperty("java.io.tmpdir"),bucket).toString();
    System.out.println(localTempDir);
    try {
        //设置断点续传文件进度保存目录
        FileRecorder fileRecorder = new FileRecorder(localTempDir);
        UploadManager uploadManager = new UploadManager(cfg, fileRecorder);
        try {
        	Response response = uploadManager.put(localFilePath, key, upToken);
        	//解析上传成功的结果
        	DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),
        	DefaultPutRet.class);
        	System.out.println(putRet.key);
        	System.out.println(putRet.hash);
        } catch (QiniuException ex) {
        	Response r = ex.response;
        	System.err.println(r.toString());
        	try {
        		System.err.println(r.bodyString());
        	} catch (QiniuException ex2) {
        		//ignore
        	}
    	}
    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

文件下载

对于公开空间,其访问的链接主要是将空间绑定的域名(可以是七牛空间的默认域名或者是绑定的自定义域名)拼接上空间里面的文件名即可访问,标准情况下需要在拼接链接之前,将文件名进行urlencode 以兼容不同的字符。